

#include "iostream"
#include "vector"
#include "unordered_map"
#include "unordered_set"
#include "algorithm"
#include "string"
#include "list"
#include "string.h"

class OneLoop {
public:
    std::vector<int> vec;
    int max=INT_MIN;
    int end_cnt;
    void dfs(int index,int cj,int depth){

        if(depth==end_cnt){
            if(cj>max){
                max=cj;
            }
            return;
        }
        for(int i=index;i<vec.size();i++){
            dfs(i+1,cj*vec[i],depth+1);
        }
    }
    bool run(
    ) {
        int a;
        std::cin>>a>>end_cnt;
        for (int i = 0; i < a; ++i) {
            int n;std::cin>>n;
            vec.push_back(n);
        }
        dfs(0,1,0);
        printf("%d\n",max);
     return true  ;
    }
};

class Solution {
public:
    void run() {

        bool first = true;
        int a, b, c, d, e;
//        std::cin >> a;
        std::cin>>a;
        while (a) {
            OneLoop l;
            if (!l.run()) {
//                return;
            }
            a--;
        }


    }
};

int main() {
//    bool cur_num= true;
    Solution().run();
    return 0;
}

